package com.ruoyi.newSystem.bean.output;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

/**
 * The type Auth permission info resp vo.
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class AuthPermissionInfoRespVO {


    private Set<String> roles;
    private Set<String> depts;

    private Set<String> permissions;

    private List<MenuVO> menus;

    private Long id;

    private String nickname;

    private String avatar;

    private String datasetIds;

    /**
     * The type Menu vo.
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    public static class MenuVO {

        private Long id;

        private Long parentId;

        private String name;

        private String path;

        private String component;

        private String componentName;

        private String icon;

        private Boolean visible;

        private Boolean keepAlive;

        private Boolean alwaysShow;

        /**
         * 子路由
         */
        private List<MenuVO> children = new ArrayList<>();

        //智能应用的分类id
        private Integer categoryId;
        //智能应用的分类id
        private Integer type;

        private String dataSetId;

        private String treeKey;

        /**
         * 扩散下来的智能应用id
         */
        private Integer appSettingId;

    }

}
